package demo.api;

import org.pcap4j.core.PcapNetworkInterface;
import org.pcap4j.packet.namednumber.EtherType;
import org.pcap4j.util.MacAddress;

/**
 * 以太网协议处理服务
 * 
 * @author caohj
 * @Date 2017年8月3日
 */
public interface EthernetService extends ProtocolService {

	/**
	 * 释放网卡连接
	 */
	void close();

	boolean isOpen();

	PcapNetworkInterface getNetworkInterface();

	/**
	 * 负责将数据包装成以太网帧格式，并发送出去
	 * 
	 * @param mac
	 * @param type
	 *            以太网帧数据类型
	 * @param data
	 *            长度限制在 46-1500
	 */
	void sendPacket(MacAddress mac, EtherType type, byte[] data);

	void setFilter(String bpfExpression);
}
